package com.ny.mapper;

import java.util.List;
import com.ny.domain.MemberCardDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * MemberCardMapper
 *
 * @author MSI-NB
 * @date 2025-03-08 13:14:38
 */
@Mapper
public interface MemberCardMapper {

    /**
     * 根据会员ID查询会员卡信息
     *
     * @Param memberId 会员ID
     * @Return List<MemberCardDO>
     */
    List<MemberCardDO> selectAllByMemberId(@Param("memberId") Integer memberId);

    /**
     * 根据会员ID和类型查询会员卡信息
     *
     * @Param memberId 会员ID
     * @Param cardType 会员卡类型
     * @Return MemberCardDO
     */
    MemberCardDO selectByMemberIdAndType(@Param("memberId") Integer memberId, @Param("cardType") String cardType);

    /**
     * 根据会员卡ID查询会员卡信息
     *
     * @Param cardId 会员卡ID
     * @Return MemberCardDO
     */
    MemberCardDO selectById(@Param("cardId") Integer cardId);

    /**
     * 插入会员卡信息
     *
     * @Param memberCardDO 会员卡信息
     * @Return 插入结果
     */
    int insert(MemberCardDO memberCardDO);

    /**
     * 根据会员卡ID删除会员卡信息
     *
     * @Param cardId 会员卡ID
     * @Return 删除结果
     */
    int deleteById(@Param("cardId") Integer cardId);

    /**
     * 根据会员ID删除会员卡信息
     *
     * @Param memberId 会员ID
     * @Return 删除结果
     */
    int deleteByMemberId(@Param("memberId") Integer memberId);

    /**
     * 更新会员卡信息
     *
     * @Param memberCardDO 会员卡信息
     * @Return 更新结果
     */
    int updateById(MemberCardDO memberCardDO);

    /**
     * 查询所有充值记录
     * @Return List<MemberCardDO>
     */
    List<MemberCardDO> selectAllRechargeRecords();

    /**
     * 根据会员ID查询会员卡信息
     *
     * @param memberId 会员ID
     * @return 会员卡信息
     */
    MemberCardDO selectByMemberId(Integer memberId);
}
